//! 文档注释
//!
//! 1. 这是rust注释的示例
//! 2. //! 开头的注释会出现在文档中
//! 3. 如果内外部都出现//!, 可增加`#![allow(clippy::mixed_attributes_style)]`
//!

#![doc(html_playground_url = "https://play.rust-lang.org/")]

/// 标题: main 注释. 第一行会现在外部
///
/// - 第一行是简短描述
/// - 第二行开始是详细描述
///
/// # Example
///
/// ```
/// println!("Hello, world!");
/// ```
///
///
/// # Example
///
/// ```
/// let slice = ['r', 'u', 's', 't'];
/// let iter = slice.windows(2);
/// ```
///
/// [`windows`]: slice::windows
/// [slices]: slice
fn main() {
    //! 内部采用//! 开头的注释会出现在文档中
    /// 这里注释不会出现在文档中, 如果//! 开头, 会出现在文档中
    println!("Hello, world!");
}

/// title: another_function. 第一行会现在外部
///
/// 1. 第一行是简短描述
/// 2. 第二行开始是详细描述
///
pub fn another_function() {
    // 这里注释不会出现在文档中
    println!("Another function");
}

/// title: sub_module. 第一行会现在外部
///
/// mod 注释
pub mod sub_module {
    /// title: hello. 第一行会现在外部
    ///
    /// 1. 第一行是简短描述
    /// 2. 第二行开始是详细描述
    pub fn hello() {
        println!("Hello from sub module");
    }
}
